package com.epsoft.odin7cj.flow.example;

import java.util.List;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task;

/**
 * 任务
 * @author Administrator
 *
 */
public class C05Task {

	public static void main1(String[] args) throws Exception {
		
		// 流程引擎
		ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
		// 获取任务服务
		TaskService ts = engine.getTaskService();
		
		String userId = "USER_ID_001";
		String userId2 = "USER_ID_002";
		
		// 保存一个任务
		String taskId = "TASK_101";
		Task task = ts.newTask(taskId);
		task.setName("测试task");
		//ts.saveTask(task);
		
		// 设置任务候选人
//		ts.addCandidateUser(taskId, userId);
		/**
		List<Task> listCandidateTask = ts.createTaskQuery().taskCandidateUser(userId).list();
		for(Task objCandidateTask : listCandidateTask) {
			System.out.println("objCandidateTask:"+objCandidateTask);
		}
		*/
		
		// 设置任务持有人
//		ts.setOwner(taskId, userId);
		/**
		List<Task> listOwnerTask = ts.createTaskQuery().taskOwner(userId).list();
		for(Task objOWnerTask : listOwnerTask) {
		    System.out.println("objOWnerTask:"+objOWnerTask);
	    }
	    */
		
		// 设置任务代理人
//		ts.setAssignee(taskId, userId2);
		
		List<Task> listAssigneeTask = ts.createTaskQuery().taskAssignee(userId2).list();
		for(Task objAssigneeTask : listAssigneeTask) {
		    System.out.println("objAssigneeTask:"+objAssigneeTask);
	    }
		
		// 任务完成
		ts.complete(taskId);
		
		
	}
	
}
